using System;
using System.Collections.Generic;
using System.Text;
using TNI;
using ImagesMath;

namespace Graphics
{
    public class Light
    {


        public Light () {}
        public Light (Color diffuse,Color specular )
        {
            this.diffuseColor = diffuse;
            this.specularColor = specular;
        }


        virtual public VR3 GetDirection(PR3 p)// Direction vers la lampe
        {
            return new VR3(p);
        }
        virtual public void SetDirection(PR3 p)
        {

        }
        virtual public double GetDistance(PR3 p) // Distance lampe - p
        {
            return 0;
        }

        virtual public void SetDistance(PR3 p)
        {

        }

        virtual public void Lighting(Material material, ref Intersection inter, ref Ray LightRay, ref  Ray ray, ref Color color, double power)
        { 
        
        }

        protected Color diffuseColor;
        protected Color specularColor;

    }
}

//
// light.h
//

//#ifndef __LIGHT_H__
//#define __LIGHT_H__

//#include <iostream>
//#include <mCG.h>
//#include "define.h"
//#include "ray.h"
//#include "object.h"
//#include "intersection.h"
//#include "material.h"



//class CMaterial;
//class CIntersection; 

//class CLight
//{
//    public:

//        CLight () {}
//        CLight ( const Color& diffuse, const Color& specular );
		
//        virtual ~CLight() {}
//        virtual vR3 GetDirection ( const pR3& p ) const = 0;// Direction vers la lampe
//        virtual double GetDistance ( const pR3& p ) const = 0;// Distance lampe - p
//        virtual void Lighting( const CMaterial* material, const CIntersection& inter, const CRay& LightRay, const CRay& ray, Color &color, double power ) const = 0;


//    protected:

//        Color m_diffuseColor;
//        Color m_specularColor;
//};


